package com.chebaohui.iqs.service.impl.deal.pay;

import com.chebaohui.iqs.entity.pay.Pays;
import com.chebaohui.iqs.service.impl.deal.util.PayUtil;
import com.chebaohui.iqs.service.impl.deal.util.StringUtil;

/**
 * 支付请求参数验证
 * 
 * @author regas_xie
 *
 */
public class PaysCheck {

	/**
	 * 参数验证
	 * 
	 * @param pays
	 * @return
	 */
	public static String sign(Pays pays) {
		try {
			if (!PayUtil.dealPayType(pays.getPayType()))
				return "支付方式选择错误:" + pays.getPayType();
			
			if (StringUtil.isNulls(pays.getOrderSid())
					|| !StringUtil.valFormat(pays.getOrderSid(), "^[A-Za-z0-9]{10,}"))
				return "订单号orderSid格式错误:" + pays.getOrderSid();

			if (pays.getAmount() <= 0)
				return "订单金额小于等于0:" + pays.getAmount();

			if (StringUtil.isNulls(pays.getBackUrl())
					|| !StringUtil.valFormat(pays.getBackUrl(), "^(http|https)+://[^\\s]*$"))
				return "回调<后台>地址错误:" + pays.getBackUrl();

			if (StringUtil.isNulls(pays.getSuccessUrl())
					|| !StringUtil.valFormat(pays.getSuccessUrl(), "^(http|https)+://[^\\s]*$"))
				return "回调<前台成功页面>地址错误:" + pays.getSuccessUrl();

			if (StringUtil.isNulls(pays.getFailUrl())
					|| !StringUtil.valFormat(pays.getFailUrl(), "^(http|https)+://[^\\s]*$"))
				return "回调<前台失败页面>地址错误:" + pays.getFailUrl();

			if (pays.getTimeOut() < 0)
				return "订单支付超时时间错误:" + pays.getTimeOut();
		} catch (Exception e) {
			return "支付请求参数验证异常:" + e.getMessage();
		}
		return "true";
	}
	
}
